package cn.doitedu.day07

import cn.doitedu.day01.utils.SparkUtil

/**
 * @Date 22.4.6
 * @Created by HANGGE
 * @Description
 */
object C01_闭包引用 {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSc
   // 创建RDD
    val rdd = sc.makeRDD(Array(1, 2, 3, 4, 5, 6))
    // 创建引用类型的变量                    在Driver端创建[***]
    val user = new User(1, "zss", 23) with Serializable
    // 调用转换算子   map(func)             func在executor端执行[###]

    val rdd2 = rdd.map(e => {
      // 使用算子[外边]的一个引用类型的变量的属性
      user.age = user.age + 3
    })

    // func执行  必须调用行动算子 触发执行
    //  Task not serializable  cn.doitedu.day07.User
   rdd2.foreach(println)
    println(user.age)



  }

}
